//
// Created by LU on 2022/10/23.
//

#ifndef MYJSON_PARSER_H
#define MYJSON_PARSER_H
using namespace std;
#include <string>
#include "json.h"

namespace yazi{
namespace json {

class Parser {
public:
    Parser();
    void load(const string & str);
    Json parse();

private:
    void skip_white_space();
    char get_next_token();
    Json parse_null();
    Json parse_bool();
    Json parse_number();
    string parse_string();
    Json parse_array();
    Json parse_object();


private:
    string m_str;
    int m_idx{};


};
}
}


#endif //MYJSON_PARSER_H
